package Controller;

import Dao.ImpUsuarioDao;
import Model.Usuario;
import Utils.HibernateUtil;
import java.awt.event.ActionEvent;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.hibernate.Session;
import org.hibernate.Transaction;

@ManagedBean
@SessionScoped
public class UsuarioController {

    private Usuario usr;
    private DataModel listaUsuarios;

    public DataModel getListarUsuarios() {
        List<Usuario> lista = new ImpUsuarioDao().list();
        listaUsuarios = new ListDataModel(lista);

        return listaUsuarios;
    }

    public Usuario getUsuario() {
        return usr;
    }

    public void setUsuario(Usuario usuario) {
        this.usr = usuario;
    }

    public String prepararAdicionarUsuario() {
        usr = new Usuario();
        return "cadastro.xhtml";
    }

    public void prepararAlterarUsuario() {
        usr = (Usuario) (listaUsuarios.getRowData());
    }

    public void alterarUsuario(Usuario user) {

       ImpUsuarioDao dao = new ImpUsuarioDao();
        dao.update(user);

    }

    public String adicionarUsuario() {
        ImpUsuarioDao dao = new ImpUsuarioDao();
        boolean flag = false;
        this.usr.setDoces(0);
        this.usr.setClique(1);

        for (Usuario u : dao.list()) {
            if (u.getApelido().equals(this.usr.getApelido())) {
                flag = true;
            }
        }
        if (flag) {
            FacesMessage msg = new FacesMessage("USUARIO JA EXISTE", "ERROR MSG");
            msg.setSeverity(FacesMessage.SEVERITY_ERROR);
            FacesContext.getCurrentInstance().addMessage(null, msg);
        } else {
            dao.save(usr);
            return "login.xhtml";
        }
        return null;
    }

}
